From 3cab70c36e201629c09673ec298202f23af494b6 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Fri, 17 Nov 2006 23:21:13 +0000 Subject: [PATCH] Tweak some more formats to use our common gbfile api. --- gpsbabel/coastexp.c | 17 +++---- gpsbabel/garmin_fs.c | 24 ++++----- gpsbabel/garmin_fs.h | 2 +- gpsbabel/glogbook.c | 36 +++++++------- gpsbabel/gpx.c | 110 +++++++++++++++++++++--------------------- gpsbabel/hiketech.c | 40 +++++++-------- gpsbabel/hsa_ndv.c | 38 +++++++-------- gpsbabel/ignrando.c | 76 +++++++++-------------------- gpsbabel/xmlgeneric.c | 30 ++++++------ gpsbabel/xmlgeneric.h | 16 +++--- 10 files changed, 178 insertions(+), 211 deletions(-) diff --git a/gpsbabel/coastexp.c b/gpsbabel/coastexp.c index 3af5b093d..8da17a061 100755 --- a/gpsbabel/coastexp.c +++ b/gpsbabel/coastexp.c @@ -29,8 +29,7 @@ #include "uuid.h" -static FILE *fd; -static FILE *ofd; +static gbfile *fd, *ofd; #define MYNAME "coastexp" #define MY_CBUF 4096 @@ -312,7 +311,7 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len) void ce_rd_init(const char *fname) { - fd = xfopen(fname, "r", MYNAME); + fd = gbfopen(fname, "r", MYNAME); QUEUE_INIT(&ce_route_head); QUEUE_INIT(&ce_mark_head); @@ -335,8 +334,8 @@ ce_read(void) int len; char buf[MY_CBUF]; - while ((len = fread(buf, 1, sizeof(buf), fd))) { - if (!XML_Parse(psr, buf, len, feof(fd))) { + while ((len = gbfread(buf, 1, sizeof(buf), fd))) { + if (!XML_Parse(psr, buf, len, gbfeof(fd))) { fatal(MYNAME ":Parse error at %d: %s\n", (int) XML_GetCurrentLineNumber(psr), XML_ErrorString(XML_GetErrorCode(psr))); @@ -478,7 +477,7 @@ ce_rd_deinit(void) ce_free_mark(mark); } - fclose(fd); + gbfclose(fd); xfree(element); xfree(cdatastr); } @@ -494,13 +493,13 @@ ce_wr_init(const char *fname) uuid_buffer = xcalloc(MY_UBUF,1); xml_buffer = xcalloc(MY_XBUF, 1); - ofd = xfopen(fname, "w", MYNAME); + ofd = gbfopen(fname, "w", MYNAME); } void ce_wr_deinit(void) { - fclose(ofd); + gbfclose(ofd); // Free the buffers used for writing xfree(time_buffer); @@ -559,7 +558,7 @@ ce_route_disp(const waypoint *waypointp) currentMark->id = id; currentMark->wp = (waypoint *) waypointp; ENQUEUE_TAIL(&ce_mark_head, ¤tMark->Q); - fprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard! + gbfprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard! } /* Generate route trailer XML */ diff --git a/gpsbabel/garmin_fs.c b/gpsbabel/garmin_fs.c index b22621ea3..47afd54c8 100644 --- a/gpsbabel/garmin_fs.c +++ b/gpsbabel/garmin_fs.c @@ -96,7 +96,7 @@ void garmin_fs_copy(garmin_fs_t **dest, garmin_fs_t *src) /* GPX - out */ void -garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt) +garmin_fs_xml_fprint(gbfile *ofd, const waypoint *waypt) { garmin_fs_t *gmsd = GMSD_FIND(waypt); if (gmsd == NULL) return; @@ -109,18 +109,18 @@ garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt) { int space = 1; - fprintf(ofd, "%*s\n", space++ * 2, ""); - fprintf(ofd, "%*s\n", space++ * 2, ""); + gbfprintf(ofd, "%*s\n", space++ * 2, ""); if (gmsd->flags.proximity) - fprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->proximity); + gbfprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->proximity); if (gmsd->flags.temperature) - fprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->temperature); + gbfprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->temperature); if (gmsd->flags.depth) - fprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->depth); + gbfprintf(ofd, "%*s%.6f\n", space * 2, "", gmsd->depth); if (gmsd->flags.display) { char *cx; @@ -136,23 +136,23 @@ garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt) cx = "SymbolAndName"; break; } - fprintf(ofd, "%*s%s\n", space * 2, "", cx); + gbfprintf(ofd, "%*s%s\n", space * 2, "", cx); } if (gmsd->flags.category && gmsd->category) { int i; gbuint16 cx = gmsd->category; - fprintf(ofd, "%*s\n", space++ * 2, ""); + gbfprintf(ofd, "%*s\n", space++ * 2, ""); for (i = 0; i < 16; i++) { if (cx & 1) - fprintf(ofd, "%*sCategory %d\n", space*2, "", i+1); + gbfprintf(ofd, "%*sCategory %d\n", space*2, "", i+1); cx = cx >> 1; } - fprintf(ofd, "%*s\n", --space * 2, ""); + gbfprintf(ofd, "%*s\n", --space * 2, ""); } - fprintf(ofd, "%*s\n", --space * 2, ""); - fprintf(ofd, "%*s\n", --space * 2, ""); + gbfprintf(ofd, "%*s\n", --space * 2, ""); + gbfprintf(ofd, "%*s\n", --space * 2, ""); } } diff --git a/gpsbabel/garmin_fs.h b/gpsbabel/garmin_fs.h index 123525123..f12a11a8e 100644 --- a/gpsbabel/garmin_fs.h +++ b/gpsbabel/garmin_fs.h @@ -106,7 +106,7 @@ char *garmin_fs_xstrdup(const char *src, size_t size); /* for GPX */ void garmin_fs_xml_convert(const int base_tag, int tag, const char *cdatastr, waypoint *waypt); -void garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt); +void garmin_fs_xml_fprint(gbfile *ofd, const waypoint *waypt); /* common garmin_fs utilities */ diff --git a/gpsbabel/glogbook.c b/gpsbabel/glogbook.c index 711d1225b..0c8bcae3e 100644 --- a/gpsbabel/glogbook.c +++ b/gpsbabel/glogbook.c @@ -22,7 +22,7 @@ #include "defs.h" #include "xmlgeneric.h" -static FILE *ofd; +static gbfile *ofd; static waypoint *wpt_tmp; static route_head *trk_head; @@ -75,52 +75,52 @@ glogbook_rd_deinit(void) static void glogbook_wr_init(const char *fname) { - ofd = xfopen(fname, "w", MYNAME); + ofd = gbfopen(fname, "w", MYNAME); } static void glogbook_wr_deinit(void) { - fclose(ofd); + gbfclose(ofd); } static void glogbook_waypt_pr(const waypoint *wpt) { - fprintf(ofd, " \n"); - fprintf(ofd, " \n"); - fprintf(ofd, " %.5f\n", wpt->latitude); - fprintf(ofd, " %.5f\n", wpt->longitude); + gbfprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); + gbfprintf(ofd, " %.5f\n", wpt->latitude); + gbfprintf(ofd, " %.5f\n", wpt->longitude); if (wpt->altitude != unknown_alt) { - fprintf(ofd, " %.3f\n", wpt->altitude); + gbfprintf(ofd, " %.3f\n", wpt->altitude); } - fprintf(ofd, " \n"); - fprintf(ofd, " "); + gbfprintf(ofd, " \n"); + gbfprintf(ofd, " "); xml_write_time(ofd, wpt->creation_time, "Time"); - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } static void glogbook_hdr( const route_head *rte) { - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } static void glogbook_ftr(const route_head *rte) { - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } static void glogbook_write(void) { - fprintf(ofd, "\n"); - fprintf(ofd, "\n"); - fprintf(ofd, " \n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, " \n"); track_disp_all(glogbook_hdr, glogbook_ftr, glogbook_waypt_pr); - fprintf(ofd, " \n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, " \n"); + gbfprintf(ofd, "\n"); } void gl_trk_s(const char *args, const char **unused) diff --git a/gpsbabel/gpx.c b/gpsbabel/gpx.c index 872daef9f..6551d01df 100644 --- a/gpsbabel/gpx.c +++ b/gpsbabel/gpx.c @@ -45,8 +45,8 @@ static vmem_t current_tag; static waypoint *wpt_tmp; static int cache_descr_is_html; -static FILE *fd; -static FILE *ofd; +static gbfile *fd; +static gbfile *ofd; static short_handle mkshort_handle; static const char *input_string = NULL; @@ -227,18 +227,18 @@ gpx_write_gdata(gpx_global_entry *ge, char *tag) return; } - fprintf(ofd, "<%s>", tag); + gbfprintf(ofd, "<%s>", tag); QUEUE_FOR_EACH(&ge->queue, elem, tmp) { gep = BASE_STRUCT(elem, gpx_global_entry, queue); - fprintf(ofd, "%s", gep->tagdata); + gbfprintf(ofd, "%s", gep->tagdata); /* Some tags we just output once. */ if ((0 == strcmp(tag, "url")) || (0 == strcmp(tag, "email"))) { break; } - fprintf(ofd, " "); + gbfprintf(ofd, " "); } - fprintf(ofd, "\n", tag); + gbfprintf(ofd, "\n", tag); } @@ -1097,7 +1097,7 @@ static void gpx_rd_init(const char *fname) { if ( fname[0] ) { - fd = xfopen(fname, "r", MYNAME); + fd = gbfopen(fname, "r", MYNAME); } else { fd = NULL; @@ -1173,7 +1173,7 @@ gpx_rd_deinit(void) gpx_author = NULL; } if (fd) { - fclose(fd); + gbfclose(fd); } XML_ParserFree(psr); psr = NULL; @@ -1187,13 +1187,13 @@ gpx_wr_init(const char *fname) { mkshort_handle = mkshort_new_handle(); - ofd = xfopen(fname, "w", MYNAME); + ofd = gbfopen(fname, "w", MYNAME); } static void gpx_wr_deinit(void) { - fclose(ofd); + gbfclose(ofd); mkshort_del_handle(&mkshort_handle); } @@ -1225,8 +1225,8 @@ gpx_read(void) char *badchar; char *semi; int maxentlength = 8; - len = fread(buf, 1, MY_CBUF_SZ - maxentlength, fd); - done = feof(fd) || !len; + len = gbfread(buf, 1, MY_CBUF_SZ - maxentlength, fd); + done = gbfeof(fd) || !len; buf[len] = '\0'; badchar = buf+len-maxentlength; badchar = strchr( badchar, '&' ); @@ -1234,7 +1234,7 @@ gpx_read(void) while ( badchar && len < MY_CBUF_SZ-1) { semi = strchr( badchar, ';'); while ( extra && !semi ) { - len += fread( buf+len, 1, 1, fd); + len += gbfread( buf+len, 1, 1, fd); buf[len]='\0'; extra--; if ( buf[len-1] == ';') @@ -1292,15 +1292,15 @@ static void fprint_tag_and_attrs( char *prefix, char *suffix, xml_tag *tag ) { char **pa; - fprintf( ofd, "%s%s", prefix, tag->tagname ); + gbfprintf( ofd, "%s%s", prefix, tag->tagname ); pa = tag->attributes; if ( pa ) { while ( *pa ) { - fprintf( ofd, " %s=\"%s\"", pa[0], pa[1] ); + gbfprintf( ofd, " %s=\"%s\"", pa[0], pa[1] ); pa += 2; } } - fprintf( ofd, "%s", suffix ); + gbfprintf( ofd, "%s", suffix ); } static void @@ -1316,7 +1316,7 @@ fprint_xml_chain( xml_tag *tag, const waypoint *wpt ) if ( tag->cdata ) { tmp_ent = xml_entitize( tag->cdata ); - fprintf( ofd, "%s", tmp_ent ); + gbfprintf( ofd, "%s", tmp_ent ); xfree(tmp_ent); } if ( tag->child ) { @@ -1327,11 +1327,11 @@ fprint_xml_chain( xml_tag *tag, const waypoint *wpt ) xml_write_time( ofd, wpt->gc_data.exported, "groundspeak:exported" ); } - fprintf( ofd, "\n", tag->tagname); + gbfprintf( ofd, "\n", tag->tagname); } if ( tag->parentcdata ) { tmp_ent = xml_entitize(tag->parentcdata); - fprintf(ofd, "%s", tmp_ent ); + gbfprintf(ofd, "%s", tmp_ent ); xfree(tmp_ent); } tag = tag->sibling; @@ -1383,13 +1383,13 @@ write_gpx_url(const waypoint *waypointp) tmp_ent = xml_entitize(waypointp->url); if (gpx_wversion_num > 10) { - fprintf(ofd, " \n", + gbfprintf(ofd, " \n", urlbase ? urlbase : "", tmp_ent); write_optional_xml_entity(ofd, " ", "text", waypointp->url_link_text); - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } else { - fprintf(ofd, " %s%s\n", + gbfprintf(ofd, " %s%s\n", urlbase ? urlbase : "", tmp_ent); write_optional_xml_entity(ofd, " ", "urlname", waypointp->url_link_text); @@ -1430,19 +1430,19 @@ gpx_write_common_acc(const waypoint *waypointp, const char *indent) break; } if (fix) { - fprintf(ofd, "%s%s\n", indent, fix); + gbfprintf(ofd, "%s%s\n", indent, fix); } if (waypointp->sat > 0) { - fprintf(ofd, "%s%d\n", indent, waypointp->sat); + gbfprintf(ofd, "%s%d\n", indent, waypointp->sat); } if (waypointp->hdop) { - fprintf(ofd, "%s%f\n", indent, waypointp->hdop); + gbfprintf(ofd, "%s%f\n", indent, waypointp->hdop); } if (waypointp->vdop) { - fprintf(ofd, "%s%f\n", indent, waypointp->vdop); + gbfprintf(ofd, "%s%f\n", indent, waypointp->vdop); } if (waypointp->pdop) { - fprintf(ofd, "%s%f\n", indent, waypointp->pdop); + gbfprintf(ofd, "%s%f\n", indent, waypointp->pdop); } } @@ -1450,7 +1450,7 @@ static void gpx_write_common_position(const waypoint *waypointp, const char *indent) { if (waypointp->altitude != unknown_alt) { - fprintf(ofd, "%s%f\n", + gbfprintf(ofd, "%s%f\n", indent, waypointp->altitude); } if (waypointp->creation_time) { @@ -1494,7 +1494,7 @@ gpx_waypt_pr(const waypoint *waypointp) mkshort(mkshort_handle, odesc) : waypointp->shortname; - fprintf(ofd, "\n", + gbfprintf(ofd, "\n", waypointp->latitude, waypointp->longitude); @@ -1509,7 +1509,7 @@ gpx_waypt_pr(const waypoint *waypointp) if (gpx_wversion_num > 10) { garmin_fs_xml_fprint(ofd, waypointp); } - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static void @@ -1517,13 +1517,13 @@ gpx_track_hdr(const route_head *rte) { fs_xml *fs_gpx; - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); write_optional_xml_entity(ofd, " ", "name", rte->rte_name); write_optional_xml_entity(ofd, " ", "desc", rte->rte_desc); if (rte->rte_num) { - fprintf(ofd, "%d\n", rte->rte_num); + gbfprintf(ofd, "%d\n", rte->rte_num); } - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); fs_gpx = (fs_xml *)fs_chain_find( rte->fs, FS_GPX ); if ( fs_gpx ) { @@ -1536,7 +1536,7 @@ gpx_track_disp(const waypoint *waypointp) { fs_xml *fs_gpx; - fprintf(ofd, "\n", + gbfprintf(ofd, "\n", waypointp->latitude, waypointp->longitude); @@ -1545,11 +1545,11 @@ gpx_track_disp(const waypoint *waypointp) /* These were accidentally removed from 1.1 */ if (gpx_wversion_num == 10) { if (waypointp->course >= 0) { - fprintf(ofd, " %f\n", + gbfprintf(ofd, " %f\n", waypointp->course); } if (waypointp->speed >= 0) { - fprintf(ofd, " %f\n", + gbfprintf(ofd, " %f\n", waypointp->speed); } } @@ -1567,14 +1567,14 @@ gpx_track_disp(const waypoint *waypointp) fprint_xml_chain( fs_gpx->tag, waypointp ); } - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static void gpx_track_tlr(const route_head *rte) { - fprintf(ofd, "\n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static @@ -1588,11 +1588,11 @@ gpx_route_hdr(const route_head *rte) { fs_xml *fs_gpx; - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); write_optional_xml_entity(ofd, " ", "name", rte->rte_name); write_optional_xml_entity(ofd, " ", "desc", rte->rte_desc); if (rte->rte_num) { - fprintf(ofd, " %d\n", rte->rte_num); + gbfprintf(ofd, " %d\n", rte->rte_num); } fs_gpx = (fs_xml *)fs_chain_find( rte->fs, FS_GPX ); @@ -1606,7 +1606,7 @@ gpx_route_disp(const waypoint *waypointp) { fs_xml *fs_gpx; - fprintf(ofd, " \n", + gbfprintf(ofd, " \n", waypointp->latitude, waypointp->longitude); @@ -1619,13 +1619,13 @@ gpx_route_disp(const waypoint *waypointp) fprint_xml_chain( fs_gpx->tag, waypointp ); } - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } static void gpx_route_tlr(const route_head *rte) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static @@ -1651,7 +1651,7 @@ gpx_write_bounds(void) track_disp_all(NULL, NULL, gpx_waypt_bound_calc); if (waypt_bounds_valid(&all_bounds)) { - fprintf(ofd, "\n", all_bounds.min_lat, all_bounds.min_lon, all_bounds.max_lat, all_bounds.max_lon); @@ -1680,22 +1680,22 @@ gpx_write(void) setshort_length(mkshort_handle, short_length); - fprintf(ofd, "\n", global_opts.charset_name); - fprintf(ofd, "\n", global_opts.charset_name); + gbfprintf(ofd, "\n", xsi_schema_loc); + gbfprintf(ofd, "xsi:schemaLocation=\"%s\">\n", xsi_schema_loc); } else { - fprintf(ofd, + gbfprintf(ofd, "xsi:schemaLocation=" DEFAULT_XSI_SCHEMA_LOC_FMT">\n", gpx_wversion[0], gpx_wversion[2], gpx_wversion[0], gpx_wversion[2]); } if (gpx_wversion_num > 10) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } gpx_write_gdata(&gpx_global->name, "name"); gpx_write_gdata(&gpx_global->desc, "desc"); @@ -1714,14 +1714,14 @@ gpx_write(void) gpx_write_bounds(); if (gpx_wversion_num > 10) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } waypt_disp_all(gpx_waypt_pr); gpx_route_pr(); gpx_track_pr(); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } diff --git a/gpsbabel/hiketech.c b/gpsbabel/hiketech.c index c8e0ccced..c5f35b08d 100644 --- a/gpsbabel/hiketech.c +++ b/gpsbabel/hiketech.c @@ -22,7 +22,7 @@ #include "defs.h" #include "xmlgeneric.h" -static FILE *ofd; +static gbfile *ofd; static waypoint *wpt_tmp; static route_head *trk_head; @@ -94,26 +94,26 @@ hiketech_rd_deinit(void) static void hiketech_wr_init(const char *fname) { - ofd = xfopen(fname, "w", MYNAME); + ofd = gbfopen(fname, "w", MYNAME); } static void hiketech_wr_deinit(void) { - fclose(ofd); + gbfclose(ofd); } static void hiketech_trk_hdr(const route_head *rte) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); write_optional_xml_entity(ofd, " ", "ident", rte->rte_name); } static void hiketech_trk_tlr(const route_head *rte) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static void @@ -121,52 +121,52 @@ hiketech_print_utc(time_t tm, const char *indent, const char *tag) { char tbuf[80]; strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %I:%M:%S", gmtime(&tm)); - fprintf(ofd, "%s<%s>%s\n",indent,tag,tbuf,tag); + gbfprintf(ofd, "%s<%s>%s\n",indent,tag,tbuf,tag); } static void hiketech_trkpt_pr(const waypoint *waypointp) { - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); if (waypointp->creation_time) { hiketech_print_utc(waypointp->creation_time, " ", "utc"); } - fprintf(ofd, " %f\n", waypointp->latitude); - fprintf(ofd, " %f\n", waypointp->longitude); + gbfprintf(ofd, " %f\n", waypointp->latitude); + gbfprintf(ofd, " %f\n", waypointp->longitude); if (waypointp->altitude != unknown_alt) { - fprintf(ofd, " %f\n", + gbfprintf(ofd, " %f\n", waypointp->altitude); } - fprintf(ofd, " \n"); + gbfprintf(ofd, " \n"); } static void hiketech_waypt_pr(const waypoint *wpt) { - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); write_xml_entity(ofd, "\t", "ident", wpt->shortname); write_optional_xml_entity(ofd, "\t", "sym", wpt->icon_descr); - fprintf(ofd, "\t%f\n", wpt->latitude); - fprintf(ofd, "\t%f\n", wpt->longitude); + gbfprintf(ofd, "\t%f\n", wpt->latitude); + gbfprintf(ofd, "\t%f\n", wpt->longitude); /* * These probably aren't technicallyconstants, but it's all * we can do for now. */ - fprintf(ofd, "\t\n\t\tFAFFB4\n\t\tFF8000\n\t\n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\t\n\t\tFAFFB4\n\t\tFF8000\n\t\n"); + gbfprintf(ofd, "\n"); } static void hiketech_write(void) { - fprintf(ofd, "\n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); track_disp_all(hiketech_trk_hdr, hiketech_trk_tlr, hiketech_trkpt_pr); track_disp_all(NULL, NULL, hiketech_trkpt_pr); waypt_disp_all(hiketech_waypt_pr); - fprintf(ofd, "\n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } static diff --git a/gpsbabel/hsa_ndv.c b/gpsbabel/hsa_ndv.c index fba334f0f..23bb305a2 100644 --- a/gpsbabel/hsa_ndv.c +++ b/gpsbabel/hsa_ndv.c @@ -40,7 +40,7 @@ static void readVersion4( FILE* pFile); static void getAttr(const char *data, const char *attr, char **val, char seperator); static FILE *fd; -static FILE *ofd; +static gbfile *ofd; static arglist_t hsa_ndv_args[] = { @@ -295,13 +295,13 @@ hsa_ndv_rd_deinit(void) static void hsa_ndv_wr_init(const char *fname) { - ofd = xfopen(fname, "w", MYNAME); + ofd = gbfopen(fname, "w", MYNAME); } static void hsa_ndv_wr_deinit(void) { - fclose(ofd); + gbfclose(ofd); } static int legNum = 0; @@ -310,20 +310,20 @@ static void hsa_ndv_waypt_pr(const waypoint *waypointp) { - fprintf(ofd, "\t\t\n"); + gbfprintf(ofd, "\t\t\n"); - fprintf(ofd, "\t\t\twaypnt\n"); + gbfprintf(ofd, "\t\t\twaypnt\n"); //ignore these for now, they are s57 specific // fprintf(ofd, "\t\t\t0\n"); // fprintf(ofd, "\t\t\t1\n"); // fprintf(ofd, "\t\t\t1089009023\n"); - fprintf(ofd, "\t\t\t\n", routeName, waypointp->shortname, legNum, waypointp->description); - fprintf(ofd, "\t\t\t\n", routeName); - fprintf(ofd, "\t\t\t1\n"); - fprintf(ofd, "\t\t\t%lf\n", waypointp->latitude); - fprintf(ofd, "\t\t\t%lf\n", waypointp->longitude); + gbfprintf(ofd, "\t\t\t\n", routeName, waypointp->shortname, legNum, waypointp->description); + gbfprintf(ofd, "\t\t\t\n", routeName); + gbfprintf(ofd, "\t\t\t1\n"); + gbfprintf(ofd, "\t\t\t%lf\n", waypointp->latitude); + gbfprintf(ofd, "\t\t\t%lf\n", waypointp->longitude); - fprintf(ofd, "\t\t\n"); + gbfprintf(ofd, "\t\t\n"); legNum++; } @@ -331,14 +331,14 @@ hsa_ndv_waypt_pr(const waypoint *waypointp) static void hsa_ndv_write(void) { - fprintf(ofd, "\n"); - fprintf(ofd, "\n"); - fprintf(ofd, "\t\n"); - fprintf(ofd, "\t\t1.0000000\n"); - fprintf(ofd, "\t\tROUTENAME\n"); /*TODO: used filename? */ - fprintf(ofd, "\t\t0\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); + gbfprintf(ofd, "\t\n"); + gbfprintf(ofd, "\t\t1.0000000\n"); + gbfprintf(ofd, "\t\tROUTENAME\n"); /*TODO: used filename? */ + gbfprintf(ofd, "\t\t0\n"); waypt_disp_all(hsa_ndv_waypt_pr); - fprintf(ofd, "\t\n"); + gbfprintf(ofd, "\t\n"); //later we'll import past tracks and chart objects? // fprintf(ofd, "\t\n"); @@ -347,7 +347,7 @@ hsa_ndv_write(void) // fprintf(ofd, "\t\n"); - fprintf(ofd, "\n"); + gbfprintf(ofd, "\n"); } ff_vecs_t HsaEndeavourNavigator_vecs = { diff --git a/gpsbabel/ignrando.c b/gpsbabel/ignrando.c index 98b449bfa..7a76b57bb 100644 --- a/gpsbabel/ignrando.c +++ b/gpsbabel/ignrando.c @@ -1,8 +1,8 @@ /* - Support for IGN Rando track files, + Support for IGN Rando track files. - Copyright (C) 2005 Olaf Klein, o.b.klein@gpsbabel.org + Copyright (C) 2005,2006 Olaf Klein, o.b.klein@gpsbabel.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ #define MYNAME "IGNRando" -static FILE *fout; +static gbfile *fout; static route_head *track; static waypoint *wpt; @@ -189,50 +189,18 @@ ignr_read(void) /* write support */ -static void -ignr_fprintf(FILE *f, const char *fmt, ...) -{ - char buff[256]; - char *temp = buff; - va_list args; - int i; - - va_start(args, fmt); - - i = vsnprintf(buff, sizeof(buff), fmt, args); - if (i >= (int) sizeof(buff)) - { - temp = xmalloc(i + 1); - i = vsnprintf(temp, i + 1, fmt, args); - } - if (i < 0) - { - fatal(MYNAME ": error in vsnprintf.\n"); - } - else if (i > 0) - { - char eol = temp[i - 1]; - if (eol == '\n') i--; - fwrite(temp, 1, i, f); - if (eol == '\n') fprintf(f, "\r\n"); - } - - if (temp != buff) xfree(temp); - va_end(args); -} - /* callbacks registered in ignr_vecs */ static void ignr_rw_init(const char *fname) { - fout = xfopen(fname, "wb", MYNAME); + fout = gbfopen(fname, "w", MYNAME); } static void ignr_rw_deinit(void) { - fclose(fout); + gbfclose(fout); } static void @@ -242,11 +210,11 @@ ignr_write_track_hdr(const route_head *track) if (track_num != track_index) return; - ignr_fprintf(fout, "\t\n"); - ignr_fprintf(fout, "\t\t%d\n", track->rte_waypt_ct); + gbfprintf(fout, "\t\n"); + gbfprintf(fout, "\t\t%d\n", track->rte_waypt_ct); if (track->rte_desc != NULL) - ignr_fprintf(fout, "\t\t%s\n", track->rte_desc); - ignr_fprintf(fout, "\t\n"); + gbfprintf(fout, "\t\t%s\n", track->rte_desc); + gbfprintf(fout, "\t\n"); } static void @@ -259,11 +227,11 @@ ignr_write_waypt(const waypoint *wpt) { if (track_num != track_index) return; - ignr_fprintf(fout, "\t\n"); - ignr_fprintf(fout, "\t\t%3.6f,%3.6f\n", wpt->latitude, wpt->longitude); + gbfprintf(fout, "\t\n"); + gbfprintf(fout, "\t\t%3.6f,%3.6f\n", wpt->latitude, wpt->longitude); if (wpt->altitude != unknown_alt) - ignr_fprintf(fout, "\t\t%3.6f\n", wpt->altitude); - ignr_fprintf(fout, "\t\n"); + gbfprintf(fout, "\t\t%3.6f\n", wpt->altitude); + gbfprintf(fout, "\t\n"); } static void @@ -287,20 +255,20 @@ ignr_write(void) now = current_time(); tm = *localtime(&now); - ignr_fprintf(fout, "\n"); - ignr_fprintf(fout, "\n"); - ignr_fprintf(fout, "\t\n"); - ignr_fprintf(fout, "\t\t1.1\n"); - ignr_fprintf(fout, "\t\tIHA03AA\n"); + gbfprintf(fout, "\n"); + gbfprintf(fout, "\n"); + gbfprintf(fout, "\t\n"); + gbfprintf(fout, "\t\t1.1\n"); + gbfprintf(fout, "\t\tIHA03AA\n"); strftime(buff, sizeof(buff), "%d/%m/%Y", &tm); - ignr_fprintf(fout, "\t\t%s\n", buff); + gbfprintf(fout, "\t\t%s\n", buff); strftime(buff, sizeof(buff), "%H:%M:%S", &tm); - ignr_fprintf(fout, "\t\t%s\n", buff); + gbfprintf(fout, "\t\t%s\n", buff); - ignr_fprintf(fout, "\t\n"); + gbfprintf(fout, "\t\n"); track_disp_all(ignr_write_track_hdr, ignr_write_track_trl, ignr_write_waypt); - ignr_fprintf(fout, "\n"); + gbfprintf(fout, "\n"); } ff_vecs_t ignr_vecs = { diff --git a/gpsbabel/xmlgeneric.c b/gpsbabel/xmlgeneric.c index edd478f4c..d0c7b4592 100644 --- a/gpsbabel/xmlgeneric.c +++ b/gpsbabel/xmlgeneric.c @@ -39,7 +39,7 @@ static const char **xg_ignore_taglist; #define MYNAME "XML Reader" void -write_xml_header(FILE *ofd) +write_xml_header(gbfile *ofd) { char buff[128]; cet_cs_vec_t *cs = cet_find_cs_by_name(CET_CHARSET_ASCII); @@ -48,20 +48,20 @@ write_xml_header(FILE *ofd) snprintf(buff, sizeof(buff), " encoding=\"%s\"", global_opts.charset_name); else buff[0] = 0; - fprintf(ofd, "\n", buff); + gbfprintf(ofd, "\n", buff); } void -write_xml_entity(FILE *ofd, const char *indent, +write_xml_entity(gbfile *ofd, const char *indent, const char *tag, const char *value) { char *tmp_ent = xml_entitize(value); - fprintf(ofd, "%s<%s>%s\n", indent, tag, tmp_ent, tag); + gbfprintf(ofd, "%s<%s>%s\n", indent, tag, tmp_ent, tag); xfree(tmp_ent); } void -write_optional_xml_entity(FILE *ofd, const char *indent, +write_optional_xml_entity(gbfile *ofd, const char *indent, const char *tag, const char *value) { if (value && *value) @@ -69,34 +69,34 @@ write_optional_xml_entity(FILE *ofd, const char *indent, } void -write_xml_entity_begin0(FILE *ofd, const char *indent, +write_xml_entity_begin0(gbfile *ofd, const char *indent, const char *tag) { - fprintf(ofd, "%s<%s>\n", indent, tag); + gbfprintf(ofd, "%s<%s>\n", indent, tag); } void -write_xml_entity_begin1(FILE *ofd, const char *indent, +write_xml_entity_begin1(gbfile *ofd, const char *indent, const char *tag, const char *attr, const char *attrval) { - fprintf(ofd, "%s<%s %s=\"%s\">\n", indent, tag, attr, attrval); + gbfprintf(ofd, "%s<%s %s=\"%s\">\n", indent, tag, attr, attrval); } void -write_xml_entity_begin2(FILE *ofd, const char *indent, +write_xml_entity_begin2(gbfile *ofd, const char *indent, const char *tag, const char *attr1, const char *attrval1, const char *attr2, const char *attrval2) { - fprintf(ofd, "%s<%s %s=\"%s\" %s=\"%s\">\n", indent, tag, attr1, attrval1, attr2, attrval2); + gbfprintf(ofd, "%s<%s %s=\"%s\" %s=\"%s\">\n", indent, tag, attr1, attrval1, attr2, attrval2); } void -write_xml_entity_end(FILE *ofd, const char *indent, +write_xml_entity_end(gbfile *ofd, const char *indent, const char *tag) { - fprintf(ofd, "%s\n", indent, tag); + gbfprintf(ofd, "%s\n", indent, tag); } void @@ -124,12 +124,12 @@ xml_fill_in_time(char *time_string, const time_t timep, int long_or_short) } void -xml_write_time(FILE *ofd, const time_t timep, char *elname) +xml_write_time(gbfile *ofd, const time_t timep, char *elname) { char time_string[64]; xml_fill_in_time(time_string, timep, XML_LONG_TIME); if (time_string[0]) { - fprintf(ofd, "<%s>%s\n", + gbfprintf(ofd, "<%s>%s\n", elname, time_string, elname diff --git a/gpsbabel/xmlgeneric.h b/gpsbabel/xmlgeneric.h index ecfa68dd7..c575b6449 100644 --- a/gpsbabel/xmlgeneric.h +++ b/gpsbabel/xmlgeneric.h @@ -36,23 +36,23 @@ typedef struct xg_tag_mapping { } xg_tag_mapping; -void write_xml_entity(FILE *ofd, const char *indent, +void write_xml_entity(gbfile *ofd, const char *indent, const char *tag, const char *value); -void write_xml_entity_begin0(FILE *ofd, const char *indent, +void write_xml_entity_begin0(gbfile *ofd, const char *indent, const char *tag); -void write_xml_entity_begin1(FILE *ofd, const char *indent, const char *tag, +void write_xml_entity_begin1(gbfile *ofd, const char *indent, const char *tag, const char *attr1, const char *attrval1); -void write_xml_entity_begin2(FILE *ofd, const char *indent, const char *tag, +void write_xml_entity_begin2(gbfile *ofd, const char *indent, const char *tag, const char *attr1, const char *attrval1, const char *attr2, const char *attrval2); -void write_xml_entity_end(FILE *ofd, const char *indent, const char *tag); +void write_xml_entity_end(gbfile *ofd, const char *indent, const char *tag); -void write_optional_xml_entity(FILE *ofd, const char *indent, +void write_optional_xml_entity(gbfile *ofd, const char *indent, const char *tag, const char *value); -void xml_write_time(FILE *ofd, const time_t timep, char *elname); +void xml_write_time(gbfile *ofd, const time_t timep, char *elname); void xml_fill_in_time(char *time_string, const time_t timep, int long_or_short); -void write_xml_header(FILE *ofd); +void write_xml_header(gbfile *ofd); void xml_ignore_tags(const char **taglist); void xml_init(const char *fname, xg_tag_mapping *tbl,const char *encoding); -- 2.30.2